#ifndef LVLONE_H
#define LVLONE_H

#include <stdlib.h> 
// Problem 1
// If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
// Find the sum of all the multiples of 3 or 5 below 1000.
bool divisible_by_three_and_five( int iNum);
int sum_multiple_three_and_five( int iUpLimit);

// Problem 2
// If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
// Find the sum of all the multiples of 3 or 5 below 1000.
bool divisable_by_three_and_five( int iNum);
int sum_even_fibonacci( int iUpLimit);

// Problem 3: Largest prime factor
int max(int a,int b);
bool isEven(unsigned _int64 iNum);
bool isPrime(unsigned _int64 iNum);
int largest_divisor(unsigned _int64  iNum);


// Problem 4
// Find the largest palindrome made from the product of two 3-digit numbers.
void split_digits(int iNum, int iNbDigits, int** iDigits);
bool isPalindromic(int iNum, int iNbDigits);
int find_largest_palindromic ( int iNbDigits);

// Problem 5 Smallest multiple
int divisible_by_range_of_numbers(int iUpLimit);

// Problem 6: Sum square difference
int sum_sqr_diff( int iLowerLimit, int iUpLimit);

// Problem 7: 10001st prime
int get_ith_prime_number(int i);

#endif